Disruptiveness based testing of a web page

ABSTRACT

A method and system for dynamically controlling publication of a changing web page. A delta vector of a change in position of a user interface control in a web browser window is invoked. The change in position occurred between a first time before a change to a web page that is already public was received and a second time after the change to the web page was implemented. A click speed component is invoked to obtain information on transition times between user interface controls including the user interface control within a click flow. A user interface control weight value is determined for the user interface control having undergone the change in position. A disruptiveness factor value is determined based on the delta vector and the corresponding user interface control weight. A test pattern to be applied to the changed web page is selected depending on the determined disruptiveness factor.

This application is a continuation application claiming priority to Ser.No. 15/496,569, filed Apr. 25, 2017.

TECHNICAL FIELD

The invention relates generally to a testing method, and morespecifically, to a computer-implemented testing method for dynamicallytesting a web page.

BACKGROUND

Today, website editing has become a state-of-the-art process for editorsto create appealing websites for end-users. In order to keep websitesand web pages current, regular update and maintenance, and often veryminor changes, are required. However, in order to guarantee high qualityof the updated web pages, these pages normally undergo a standardizedquality assurance process.

A/B testing is a method of comparing two versions of a web page againsteach other to determine which version performs better. Thus, A/B testingmay provide means to test or verify whether or not a given site ormodification of a web page or website is accepted and works for theend-users or customers. The impact of changes to the given web page onthe user experience may be significant if there is a direct relationshipto revenue streams for the hosting company and/or an e-commerce vendor.

SUMMARY

Embodiments of the present invention provide a method, and associatedcomputer system and computer program product, for dynamically testing aweb page. One or more processors of a computer system receive a changeto the web page and in response, the one or more processors change theweb page in accordance with the received change. The one or moreprocessors determine a delta vector of a change in position of a userinterface control in a web browser window on a computer display of thecomputer system. The change in position occurred between a first timebefore the change to the web page was received and a second time afterthe change was applied to the web page to change the web page. The oneor more processors determine a user interface control weight value forthe user interface control having undergone the change in position. Theone or more processors determine a disruptiveness factor value based onthe determined delta vector and the corresponding user interface controlweight. The one or more processors select a test pattern to be appliedto the changed web page depending on the determined disruptivenessfactor. The one or more processors test the web page in accordance withthe test pattern.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will be described, by way of example only,and with reference to the following drawings.

FIG. 1 shows a block diagram of an embodiment of a computer-implementedmethod for dynamically adapting testing of a web page, in accordancewith embodiments of the present invention.

FIG. 2 shows a block diagram of an embodiment of a sample web page, inaccordance with embodiments of the present invention.

FIG. 3 shows a block diagram of an embodiment of the web page of FIG. 2with modifications, in accordance with embodiments of the presentinvention.

FIG. 4 shows a result of an exemplary click stream analysis of aclick-through rate, in accordance with embodiments of the presentinvention.

FIG. 5 shows an embodiment of a system for dynamically adapting testingof a web page, in accordance with embodiments of the present invention.

FIG. 6 shows an embodiment of interrelated control engines for buildingthe system of FIG. 5 for dynamically adapting testing of a web page, inaccordance with embodiments of the present invention.

FIG. 7 shows an embodiment of a computing system comprising the systemof FIG. 5 for dynamically adapting testing of a web page, in accordancewith embodiments of the present invention.

DETAILED DESCRIPTION

Manual reviews may provide state-of-the-art process steps that need tobe walked through in today's website editing workflow. A/B testing aswell as manual reviews before publishing a web page are a time-consumingand expensive way of verifying a change to a given web page which maybind human and monetary resources and may slow down time-to-market for agiven change to a website.

Throughout the lifecycle of a website, related web pages usually undergolarger and smaller (incremental) changes which may or may not alienatethe end-user once he or she faces the changed website and thus, needmore or less cautious reviews.

Tedious, time-consuming and expensive review and A/B testingprocesses—if used as standard process—offer therefore a potential forsaving time and money during a publishing process if the modificationsmade to a web page meet certain criteria.

The present invention utilizes the following definitions, conventions,terms and/or expressions:

The term ‘delta vector’ is defined as a mathematical vector in whichdimensions changes to specific aspects of a UI (user interface) controlare expressed in numbers. A simple example may be a click button whoseposition may be changed on a web page. If the position of the clickbutton in a web browser window on a computer display (e.g., the display720 in FIG. 7) may be changed horizontally from a top left to a topright position, the aspect “horizontal position” may have a value of1.0. There may be a plurality of different change aspects to a UIcontrol such as: horizontal position, vertical position, color scheme,size, frame, font of text, size of text, relative position to logicallyrelated other UI controls (e.g., OK button and cancel/quit button) andso on. Additional aspects may be added to the delta vector based onexperience made with actual end-users of a web page. Each delta vectorhas n elements, wherein n is at least 1, and in one embodiment n is atleast 2.

The term ‘user interface control’ is defined as a widget which is anelement of interaction in a graphical user interface (GUI). Examples ofwidgets include, inter alia, a button or a scroll bar. In oneembodiment, the interface controls may be related to software componentsthat a computer user interacts with through direct manipulation to reador edit information about an application. Each widget facilitates aspecific type of user-computer interaction and appears as a visible partof the application's GUI, as defined by a theme and rendered by arendering engine. The theme makes all widgets adhere to a unifiedaesthetic design and creates a sense of overall cohesion. Some widgetssupport interaction with the user; for example labels, buttons, andcheck boxes. Other widgets act as containers that group the widgetsadded to the containers; for example windows, panels, and tabs. Invarious embodiments, output text boxes or other graphical elements notallowing an interaction (e.g., explanatory text, images or videos) maybe denoted as a UI control.

The term ‘change’, as applied to a web page layout or a web page'scontent, is defined as a manipulation performed to the web page layoutor the web page's content; in particular, a modification to a UI controlon the web page. Each type of change may be reflected as an aspect ordimension of the related change vector.

The term ‘user interface control weight’ (in particular, a related ‘UIcontrol weight value’) is defined as a factor reflecting and theimportance of the UI control on the web page. For example, a confirmbutton (UI control) may have a higher importance as a scroll up orscroll down button (UI control). The different UI controls may beperceived more or less important in comparison to other UI controls on aweb page. In particular, if a UI control (e.g., an OK button UI control)is not be positioned as expected, a UI control weight factor value maybe increased.

The term ‘disruptiveness factor’ of a web page, and in particular arelated ‘disruptiveness factor value’, is defined as a normalized valuebetween 0 and 1 expressing the amount of changes the web page (inparticular, one or more UI controls on the web page) has undergone. Inone embodiment, the disruptiveness factor may be expressed as themathematical distance between a user experience of a web page before andafter a change made to the web page. In one embodiment, thedisruptiveness factor may be expressed as the length of the delta vectormultiplied with individual user interface control weight values.

The term ‘test pattern’ for a web page is defined as a characteristic ofa certain test activity performed in response to a changed web page.This characteristic may be an A/B testing, a review and judgment inperson by a supervisor/executive or a member of a peer-group. Also a “notest required” may be a valid test pattern.

The term ‘aspect’ of a UI control is defined as a specificcharacteristic of a UI control. An aspect value may be a number in adimension of the delta vector. Examples of aspects have already beengiven above.

The term ‘aspect weight factor’ for a UI control (in particular, anaspect weight factor value) is defined as a numerical value reflecting arelative weight of a change aspect to a UI control in a relationship toother change aspects of the UI control. Thus, a position aspect may havea higher aspect weight value than a change of a font size by 1 point ofthe text of a UI control.

The term ‘sub-vector’ is defined as a partial vector of the deltavector, the partial vector reflecting performed changes to a web page,wherein each sub-vector may relate to one UI control, whereas the sum ofthe sub-vectors may relate to all changes made to all UI control of achanged web page. In one embodiment, each sub-vector is one distinctsingle element of the delta vector such that the total number ofsub-vectors of the delta vector is equal to the total number of elementsof the delta vector. In one embodiment, at least one sub-vectorcomprises a plurality of elements of the delta vector such that thetotal number of sub-vectors of the delta vector is less than the totalnumber of elements of the delta vector.

The term ‘length of delta vector’ may denote a numerical, scalar valueexpressing the amount of change performed to one or more UI controls ofthe web page. Mathematically, the length of the delta vector may alsodenote a norm of the data vector and may be calculated as known by askilled person as square root of the sum of squares of the dimensionvalues.

The term ‘adapting testing’ of a web page is defined as adjusting thetesting of the web page to conform to the changed web page resultingfrom the changes in the web page.

The method of the present invention for dynamically adapting testing ofa web page may offer multiple advantages and technical effects:

The inventive method and system may help to implement an automaticcategorization of a change, or a plurality of changes, to a web page. Inorder to support high-quality websites, it may be required to determineand assess the impact to changes made to the web page because of theimpact of the changes to the user experience. A change may result in adelta vector between the previous version of a web page and the changedversion of the web page. Currently, such changes may be assessed in amanual time-consuming process. The method and system of the presentinvention support the assessment process by automatically determiningchanges made to UI controls, expressing the changes in numerical formand influencing the manner the changed web page is assessed and tested.Through the automatic and dynamic selection of a test pattern,subjective assessments regarding individual UI control changes areavoided. The analysis performed by the present invention is based onhistorical data and also may include a clickstream analysis. Thus, themeasurement of a made user experience may directly influence theselection of the test pattern used to enhance the quality of an editedweb page.

The system and method of the present invention may release web pageeditors and quality assurance personnel from standard assessmentprocesses. For example, minor changes such as a correction of a typo oradding/deleting a word may not undergo a quality assurance process atall. Thus, available personnel may focus on the non-standard changes toweb pages and thus enhance the overall quality and usability of the website while reducing expenses and effort required for testing.

Furthermore, the method and system of the present invention providecapabilities to continuously enhance aspects (i.e., dimensions of thedata vector) based on experiences made with a continuous developmentprocess of web pages. Additionally, the growing experience of certainteam members in the quality assurance process of a web page may bereflected by individual profiles and experience values of a certain teammember in relationship to the disruptiveness factor value for aperformed change to a web page.

The inventive method may also provide website publishing automation,since it may be automatically and dynamically determined which next stephas to be performed after a change has been made to a web page. Thus,the production workflow of a web page management (in particular in thefinal quality assurance step of the production workflow) may becontrolled by the method and system of the present invention.

According to one embodiment of the method of the present invention,determining a delta vector of the user interface control may comprisedetermining a plurality of delta vector components (i.e., dimensions).Each delta vector component value may represent one aspect of the UIcontrol of the web page. Such a vector may have the form V1=(a1, b1, c1,. . . z1), in which a1, b1, c1, . . . may be numerical values for eachof the changed aspects (e.g., visual aspects) of a UI control. It may benoted that also other non-visual aspects may be assessed such as aspectsrelated to sound or video of a UI control. Thus, changes performed to aUI control may be expressed in mathematical form in order to undergo amachine-based assessment.

According to one embodiment of the method of the present invention, theaspects may be selected from a contrast change, a color scheme change, alanguage change, a relative location change and a text change, a fontchange, a size change, a form factor change (e.g., related to a desktopversion of the web page versus a mobile version), and a tonality change.The tonality change may differentiate between, e.g., a funny, a grief oran angry language based on an assessment of a cognitive analysisdeterminator engine. It may also be noted that the individual changesmay be determined by different determinator engines accessible from adelta determinator registry. These individual delta determinator enginesmay be adapted individually such that individual aspects of the changesperformed to a web page may be enhanced individually in respect toanother analysis determinator engine. Newly made experiences with useracceptances of performed changes may be reflected individually. It maybe noted that instead of the term ‘determinator”, the term “determiner”may be used.

According to one embodiment of the method of the present invention, eachcomponent of the delta vector may have an associated aspect weightfactor assigned, based on an experience repository of changes to thedifferent aspects. Thus, performed changes may be assessed andautomatically determined in a fine-grained model. Adaptations andchanges to the automatic delta vector assessment may be possible.Mathematically, the delta vector V1=(a1, b1, c1, . . . z1) may bemultiplied with the matrix having the aspect weight factor values (ga,gb, gc, . . . , gz) on the matrix's main diagonal.

According to one embodiment of the method of the present invention, thedelta vector may comprise a plurality of sub-vectors or partial vectors.Each sub-vector may relate to a respective user interface control. Itmay be noted that each sub-vector may reflect all different aspects of aspecific UI control. In this embodiment, each sub-vector is a distinctsingle element of the delta vector, so that the total number ofsub-vectors of the delta vector is equal to the total number of elements(n) of the delta vector.

According to one embodiment of the method of the present invention, thedisruptiveness factor value may be determined by|DF|=square root((w1*V1)²+(w2*V2)²+ . . . +(wn*Vn)²),  (formula 1)wherein

|DF|=length or norm of the delta vector,

wi=user interface control weight factor value for an i-th sub-vector,

Vi=i-th sub-vector value which may be weighted by the aspect weightfactors, and

i=1, 2, . . . , n.

Thus, a clear, simple and reliable determination algorithm is given todefine a normalized value of the delta vector in order to determine theinfluence that a change to a web page may have on the user experience ofthe web page.

According to an embodiment of the method of the present invention, thetest pattern may be selected from a peer review, an A/B testing, and anexecutive review. Furthermore, as an additional option, no test patternmay be selected. Thus, the changed web page may either be reviewed inperson by a peer group member or a supervisor/executive, using an A/Btesting or the changed web page may not be tested at all. The lastoption may be selected if only minor changes have been made to the webpage, which may be expressed by a comparably small amount of the datavector value.

According to an embodiment of the method of the present invention,selecting the test pattern may also be based on an editor profile and aneditor reputation value relative to the determined disruptiveness factorvalue. Thus, the experience of a team member of the quality assuranceteam for web pages may be adapted over time reflecting the team member'sexperience in assessing user experiences relating to changed web pages.

According to one embodiment of the method of the present invention, theweb page may be stored, and in particular managed, in a contentmanagement system. Thus, the method and system of the present inventionmay represent enhancements to existing content management systems (CMS),Web-CMSs, workflow control engines of website and/or web page editors orthe like. The method of the present invention provides means for anautomatic adaption of a web page management workflow during editingactivities.

According to one embodiment of the method of the present invention, theweb page may be designed using a markup language such as any form orversion of HMTL (HyperText Markup Language). Thus, the method may beimplementable with virtually any kind of web page management system.However, the method and system may also be used for differently codedweb pages as long as visual representations of UI controls may beextractable from the code. It may also be noted that the assessment ofthe change is mainly related to the visual user experience of individualcomponents (UI controls) of a web page.

A detailed description of the figures will be presented next. Allinstructions in the Figures are schematic. Firstly, a block diagram ofan embodiment of the inventive computer-implemented method fordynamically adapting testing of a web page is provided. Afterwards,further embodiments, as well as embodiments of the system fordynamically adapting testing of a web page, will be described.

FIG. 1 shows a block diagram of an embodiment of a computer-implementedmethod 100 for dynamically adapting testing of a web page, in accordancewith embodiments of the present invention. The web page may haveactually existed and may have been changed. The method comprisesreceiving a change in step 102 (in particular, one or more modificationsto one UI control) to the web page to be published and determining, instep 104, a delta vector of a UI control between the web page beforereceiving the change to the web page and after the change is applied tothe web page. The changed web page may not yet be published. The deltavector may be based on a relative importance of changes from a userperspective; i.e., based on the user experience.

The method comprises further determining, in step 106, a UI controlweight value for the user interface control having undergone the change,which may actually be based on a click-through rate, a termination rate,and/or similar parameters. Furthermore, the method comprisesdetermining, in step 108, a disruptiveness factor value based on thedetermined delta vector and the corresponding user interface controlweight. Because the delta vector is based on a subjective userexperience related to the change to the web page, the disruptivenessfactor is also based on the (mainly) visual user experience regardingthe web page having undergone the change. If more than one UI controlhas been changed, the disruptiveness factor reflects all changes to allmodified UI controls including related weight factors of the individualUI controls as well as potential weights of individual aspects of eachUI control.

The method comprises selecting, in step 110, a test pattern to beapplied to the changed web page depending on the determineddisruptiveness factor. Thus, the to-be-used testing process may bedetermined by the method and system in an advantageous way, saving laborby not requiring test sequences to the changed web page. FIG. 2 shows ablock diagram of an embodiment of a sample web page 200, in accordancewith embodiments of the present invention. The web page 200 has theinput field 202 for a URL (universal resource locator). Furthermore, aseries of UI controls is shown at specific positions on the web page200: a home button 204, a data output table 206 (or scroll area), an OKbutton 208, a cancel button 210, a basket button 212 and a check-outbutton 214. Thus, this page 200 may represent a simple e-commerceshopping web page.

FIG. 3 shows a block diagram of an embodiment of the web page 200 ofFIG. 2 with modifications, in accordance with embodiments of the presentinvention. As shown, the home button 204 has been moved a little bitbelow the original position of the home button 204. The data outputtable 206 as well as the OK button 208 and the cancel button 210 havebeen moved to the right. Additionally, the basket button 212 and thecheck-out button 214 have been moved to lower positions on the web page200. What appear to be minor changes may have a massive influence on theuser experience regarding the web page 200.

Furthermore, the fonts of the UI controls home button 204 and check-out214 have been changed. The home button 204 text is now displayed in boldletters, whereas the text on the check-out button 214 is displayed incursive letters. It may also be noted, that the cancel-button 210 hasnow a dashed line frame. However, many additional changes may be made tothe web page in form of a different color scheme, changed images,relative distance of related control buttons, and so on.

Two types of weight values may be applied in order to perform the deltavector expressing the change being made to the web page 200. A firstweight value may be related to individual UI controls: the userinterface control weight value. A set of second weight values may berelated to individual aspects; i.e., dimensions of the delta vector.Hence, each aspect such as size, font, contrast, color, movement inx-direction, movement in y-direction, etc. may also have its individualweight value: the aspect weight factors. With these different weightfactors, a fine-tuned model for changes to the web page (in particularin light of a related user experience) may be designed.

FIG. 4 shows a result of an exemplary click stream analysis 400 of aclick-through rate, in accordance with embodiments of the presentinvention. Symbolically shown are 6 web pages 402, 404, 406, 408, 410,412. A user may proceed from one web page to the next web page byclicking on a related UI control. The easier it is for a user tonavigate between different web pages of a website, the less time t1, t2,t3, t4, t5 a user may need to navigate from one web page to another. Ifa change is made to (e.g., web page 406), the click-through ratemeasured to go from web page 2 (404) to web page 4 (408) via web page 3(406) slows down, and consequently a change to the web page 3 is moresevere. Different UI controls on the different web pages may representdifferent paths through a website. Thus, the different UI controls onthe different web pages may be given different weights, as explainedabove.

The actual delta vector length may be determined by using formula 1 (seeabove). For comparative reasons, the data vector value may be normalizedto a value between 0 and 1.

FIG. 5 shows an embodiment of a system 500 for dynamically adaptingtesting of a web page, in accordance with embodiments of the presentinvention. The system comprises a publishing flow engine 502 adapted forreceiving a change to the web page to be published and a deltadeterminator engine 504 adapted for determining a delta vector of a UIcontrol between the web page before receiving the change to the web pageand after the change is applied to the web page. The delta determinationengine 504 makes use of inputs of a UI control weight determinatorengine 506 adapted for determining a user interface control weight valuefor the user interface control having undergone a change and adisruptiveness factor determination engine 508 adapted for determining adisruptiveness factor value based on the determined delta vector and thecorresponding user interface control weight.

The publishing flow engine 502 is also adapted for selecting a testpattern to be applied to the changed web page depending on thedetermined disruptiveness factor. A test of the web page may beperformed in accordance with the test pattern in response to the changedweb page.

FIG. 6 shows an embodiment 600 of interrelated control engines forbuilding the system 500 of FIG. 5 for dynamically adapting testing of aweb page, in accordance with embodiments of the present invention. FIG.6 shows a more detailed implementation schema for the techniques of thepresent invention. It may be noted that FIG. 6 shows only a part of thefunctionality of the publishing flow engine 502, in particular theaspect of an automation of the publishing process in the final testingphase.

Overall control of a testing workflow is assigned to the publishing flowengine 502. The arrows in the diagram between the different functionalboxes may express which engine is calling which sub-engine. Thus, thepublishing flow engine 502 calls the disruptiveness factor determinationengine 606 and decides, based on the disruptiveness factor valuedelivered back, and, e.g., the editor reputation or role which is loadedfrom the disruptiveness factor threshold store, which publications stepsare mandatory, or started automatically moving forward, or can beskipped. These decisions are auto-start triggers of publishing steps andmay include:

automatic A/B testing and determination of group sizes;

peer review;

executive review; and

skipping of all steps and hot publishing (i.e., publishing of the webpage without any additional testing step).

The disruptiveness factor determination engine 606 calls the deltadetermination engine 607 which computes a delta vector for all of thechanges that have been performed to the web page in question (e.g.,repositioning of UI controls, change of font, color, contrast, . . . )compared to the previous version of the web page. The set of criterionsthat make up (i.e., represent the dimensions) the delta vector can be afixed set of properties or the seed from a higher level logic/smartness;e.g., from analyzing past changes made to the web site and related userreactions.

The delta determination engine 607 accesses a web page versionrepository 608 storing the actual and previous version(s) of the webpage, as well as, a delta determinator registry 610 comprising datadeterminator engines for the different aspects of a UI control. Examplesof data determinator engines are those data determinator engines thatare related to UI characteristics or aspects such as contrast, position,language, frame, boldness, font, etc.

Furthermore, the disruptiveness factor determination engine 606 callsthe UI control weight determination engine 612 which determines theweights of all UI controls on a given web page, which may be a result ofthe usage of the click flow cancellation component 618 and/or the clickspeed component 616, but also allows for manual administration of the UIcontrol weights. Both the click speed component 616 and the click flowcancellation component 618 may use input values stored in the click flowstore 620. The click flow store 620 may store results of a click streamanalysis, as explained in the context of FIG. 3.

The disruptiveness factor determination engine 606, after havingcomputed the disruptiveness factor value, returns this disruptivenessfactor value to the publishing flow engine 502. Based on the result anda comparison with related values of the disruptiveness factor thresholdstore 602, a related publishing step may be selected out of thepublishing step registry 604, as explained above.

The disruptiveness factor threshold store 602 may store user-basedand/or reputation-based (e.g., based on an editor profile) thresholdvalues required for an individual publishing and/or testing step. A lowvalue of the disruptiveness factor, on a scale from 0 to 1, may requireno additional testing because only very minor changes may have been madeto the web page. A slightly higher disruptiveness factor may require apeer review. An again higher disruptiveness factor value may require asupervisor or executive review; and a very high disruptiveness factor(e.g., above 0.9) may require an A/B testing and may also require adetermination of the group size for such an advanced testing.

In other words, a sequence of steps of a typical editing workflow withthe inventive method and system may include:

1. The editor uses the editor's web page editing environment of choiceand makes changes to a web page that is already public.

2. The editor finalizes the editor's changes and triggers the publishingflow for the editor's changes.

3. The publishing flow engine 502 loads the editor's disruptivenessfactor threshold from the disruptiveness factor threshold store 602.

4. The publishing flow engine 502 calls the disruptiveness factordetermination engine 606 to get the delta factor for the given change tothe web page.

5. The disruptiveness factor determination engine 606 invokes the deltadetermination engine 607 in order to get the delta vectors for allchanges that have been made to UI controls on the web page.

6. The delta determination engine 607 analyzes and compares the changesto each UI control with the previous version of the web page and sendsback a list of delta scores/vectors for each UI control that has beenchanged.

7. The disruptiveness factor determination engine 606 invokes the UIcontrol weight determination engine 612 in order to get relative weightsfor each UI Control that has been changed on the web page.

8. The UI control weight determination engine 612 invokes the clickspeed component 616 to get transition times t1 to tn between the UIControls within a click flow (compare FIG. 3).

9. The UI control weight determination engine 612 invokes the click flowcancellation component 618 to get the cancellation points within a clickflow (compare FIG. 3).

10. The UI control weight determination engine 612 assigns weights toeach UI control that has been changed based on the information returnedfrom the click speed component 616, the click flow cancellationcomponent 618, and the UI control weight store 614 which may holdmanually administered weights for UI controls.

11. The UI control weight determination engine 612 returns the computedset of weights for the requested set of UI controls to thedisruptiveness factor determination engine 606.

12. The disruptiveness factor determination engine 606 computes adisruptiveness factor based on the delta score/vector of each UI controlthat has been changed (as returned by the delta determination engine607) and the relative weight that has been assigned to those UI controls(as returned by the UI control weight determination engine 612).

13. The disruptiveness factor determination engine 606 returns thecomputed disruptiveness factor to the publishing flow engine 502.

14. The publishing flow engine 502 compares the received disruptivenessfactor with the disruptiveness factor threshold, as loaded in step 3.

15. The publishing flow engine 502 initiates a set of publishing stepsthat derive from the comparison outlined in the previous step 14. Thepublishing steps may comprise direct publish, an A/B testing publishonly, an additional review process that has to be started. In case areview process is to be started, and the outcome is successful, (i.e.,the changes the Editor made are approved by the reviewers) this feedbackmay flow back to the reputation score and thus the disruptiveness factorthreshold for the editor.

Embodiments of the invention may be implemented together with virtuallyany type of computer, regardless of the platform being suitable forstoring and/or executing program code. FIG. 7 shows, as an example, acomputing system 700 suitable for executing program code related to theinventive method.

FIG. 7 shows an embodiment of the computing system 700 comprising thesystem 500 of FIG. 5 for dynamically adapting testing of a web page, inaccordance with embodiments of the present invention. The computingsystem 700 is only one example of a suitable computer system and is notintended to suggest any limitation as to the scope of use orfunctionality of embodiments of the invention described herein.Regardless, computer system 700 is capable of being implemented and/orperforming any of the functionality set forth hereinabove. In thecomputer system 700, there are components, which are operational withnumerous other general purpose or special purpose computing systemenvironments or configurations. Examples of well-known computingsystems, environments, and/or configurations that may be suitable foruse with computer system/server 700 include, but are not limited to,personal computer systems, server computer systems, thin clients, thickclients, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, set top boxes, programmable consumerelectronics, network PCs, minicomputer systems, mainframe computersystems, and distributed cloud computing environments that include anyof the above systems or devices, and the like. Computer system/server700 may be described in the general context of computersystem-executable instructions, such as program modules, being executedby a computer system 700. Generally, program modules may includeroutines, programs, objects, components, logic, data structures, and soon that perform particular tasks or implement particular abstract datatypes. Computer system/server 700 may be practiced in distributed cloudcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed cloud computing environment, program modules may be locatedin both local and remote computer system storage media including memorystorage devices.

As shown in the figure, computer system/server 700 is shown in the formof a general-purpose computing device. The components of computersystem/server 700 may include, but are not limited to, one or moreprocessors or processing units 702, a system memory 704, and a bus 706that couples various system components including system memory 704 tothe processor 702. Bus 706 represents one or more of any of severaltypes of bus structures, including a memory bus or memory controller, aperipheral bus, an accelerated graphics port, and a processor or localbus using any of a variety of bus architectures. By way of example, andnot limitation, such architectures include Industry StandardArchitecture (ISA) bus, Micro Channel Architecture (MCA) bus, EnhancedISA (EISA) bus, Video Electronics Standards Association (VESA) localbus, and Peripheral Component Interconnects (PCI) bus. Computersystem/server 700 typically includes a variety of computer systemreadable media. Such media may be any available media that is accessibleby computer system/server 700, and it includes both, volatile andnon-volatile media, removable and non-removable media.

The system memory 704 may include computer system readable media in theform of volatile memory, such as random access memory (RAM) 708 and/orcache memory 710. Computer system/server 700 may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 712 may be provided forreading from and writing to a non-removable, non-volatile magnetic media(not shown and typically called a ‘hard drive’). Although not shown, amagnetic disk drive for reading from and writing to a removable,non-volatile magnetic disk (e.g., a ‘floppy disk’), and an optical diskdrive for reading from or writing to a removable, non-volatile opticaldisk such as a CD-ROM, DVD-ROM or other optical media may be provided.In such instances, each can be connected to bus 706 by one or more datamedia interfaces. As will be further depicted and described below,memory 704 may include at least one program product having a set (e.g.,at least one) of program modules that are configured to carry out thefunctions of embodiments of the invention.

The program/utility, having a set (at least one) of program modules 716,may be stored in memory 704 by way of example, and not limitation, aswell as an operating system, one or more application programs, otherprogram modules, and program data. Each of the operating system, one ormore application programs, other program modules, and program data orsome combination thereof, may include an implementation of a networkingenvironment. Program modules 716 generally carry out the functionsand/or methodologies of embodiments of the invention as describedherein.

The computer system/server 700 may also communicate with one or moreexternal devices 718 such as a keyboard, a pointing device, a display720, etc.; one or more devices that enable a user to interact withcomputer system/server 700; and/or any devices (e.g., network card,modem, etc.) that enable computer system/server 700 to communicate withone or more other computing devices. Such communication can occur viaInput/Output (I/O) interfaces 714. Still yet, computer system/server 700may communicate with one or more networks such as a local area network(LAN), a general wide area network (WAN), and/or a public network (e.g.,the Internet) via network adapter 722. As depicted, network adapter 722may communicate with the other components of computer system/server 700via bus 706. It should be understood that although not shown, otherhardware and/or software components could be used in conjunction withcomputer system/server 700. Examples, include, but are not limited to:microcode, device drivers, redundant processing units, external diskdrive arrays, RAID systems, tape drives, and data archival storagesystems, etc.

Additionally, the system 500 for dynamically adapting testing of a webpage may be attached to the bus system 706.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

A computer program product of the present invention comprises one ormore computer readable hardware storage devices having computer readableprogram code stored therein, said program code executable by one or moreprocessors of a computer system to implement the methods of the presentinvention.

A computer system of the present invention comprises one or moreprocessors, one or more memories, and one or more computer readablehardware storage devices, said one or more hardware storage devicecontaining program code executable by the one or more processors via theone or more memories to implement the methods of the present invention.

In one embodiment, the computer or computer system may be or include aspecial-purpose computer or machine that comprises specialized,non-generic hardware and circuitry (i.e., specialized discretenon-generic analog, digital, and logic based circuitry) for(independently or in combination) particularized for executing onlymethods of the present invention. The specialized discrete non-genericanalog, digital, and logic based circuitry may include proprietaryspecially designed components (e.g., a specialized integrated circuit,such as for example an Application Specific Integrated Circuit (ASIC),designed for only implementing methods of the present invention).

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to limit the invention. As usedherein, the singular forms “a”, “an” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will further be understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or steps plus function elements in the claims below are intendedto include any structure, material, or act for performing the functionin combination with other claimed elements, as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skills in the artwithout departing from the scope and spirit of the invention. Theembodiments are chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skills in the art to understand the invention forvarious embodiments with various modifications, as are suited to theparticular use contemplated.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers or ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A method for automatically and dynamicallycontrolling publication of a changing web page, said method comprising:invoking by a delta determination engine to determine, by one or moreprocessors of a computer system, a delta vector of a change in positionof a user interface control in a web browser window on a computerdisplay of the computer system, said change in position having occurredbetween a first time before a change to a web page that is alreadypublic was received and a second time after the change to the web pagewas applied to the web page to change the web page; invoking a clickspeed component to obtain information on transition times between userinterface controls including the user interface control within a clickflow; invoking a user interface weight determination engine to assignweights to each user interface control that has been changed based onthe information returned from the click speed component and toautomatically determine, by the one or more processors, a user interfacecontrol weight value for the user interface control having undergone thechange in position, said user interface control weight value indicatingan importance of the user interface control on the web page; calling adisruptiveness factor determination engine to determine, by the one ormore processors, a disruptiveness factor value based on the determineddelta vector and the corresponding user interface control weight value,said disruptiveness factor value being a normalized value expressing anamount of change the user interface control has undergone; calling apublishing flow engine to compare the disruptiveness factor value with adisruptiveness factor threshold; in response to a result of saidcomparing, automatically and dynamically selecting, by the one or moreprocessors from a plurality of test patterns, a test pattern to beapplied to the changed web page depending on the determineddisruptiveness factor value; and testing, by the one or more processors,the changed web page in accordance with the selected test pattern. 2.The method of claim 1, said method further comprising: applying, by theone or more processors, the test pattern to the changed web pagedepending on the determined disruptiveness factor value.
 3. The methodof claim 1, said testing comprising dynamically testing, by the one ormore processors, the changed web page in accordance with the selectedtest pattern without requiring test sequences to the changed web page,said method further comprising: automatically and dynamically publishingthe changed web page, by the one or more processors, in dependence on aresult of said testing.
 4. The method of claim 1, wherein saiddetermining the delta vector comprises determining a plurality of deltavector component values, one delta vector component value for eachaspect of a plurality of aspects of the user interface control on theweb page.
 5. The method of claim 4, wherein the plurality of aspects ofthe user interface control comprise at least one change selected fromthe group consisting of a contrast change, a color scheme change, alanguage change, a relative location change, a text change, a fontchange, a size change, a form factor change, a tonality change, andcombinations thereof.
 6. The method of claim 4, wherein each componentof the delta vector has an aspect weight factor value assigned based onchanges to the plurality of aspects, said changes to the plurality ofaspects having been recorded in an experience repository.
 7. The methodof claim 1, wherein the delta vector comprises a plurality ofsub-vectors, and wherein each sub-vector relates to a respective userinterface control.
 8. The method of claim 7, wherein each sub-vector isa distinct single element of the delta vector so that the total numberof sub-vectors of the delta vector is equal to the total number ofelements (n) of the delta vector, and wherein said determining thedisruptiveness factor value comprises computing |DF| via:|DF|=w1*V1+w2*V2+ . . . +wn*Vn, wherein: |DF|=length or norm of thedelta vector, wi=user interface control weight factor value for an i-thsub-vector, Vi=i-th sub-vector value weighted by aspect weight factorsassigned based on changes to each aspect of a plurality of aspects ofthe user interface control, respectively, and i=1, 2, . . . , n.
 9. Themethod of claim 1, wherein the test pattern is a peer review, an A/Btesting, an executive review, or combinations thereof.
 10. The method ofclaim 9, wherein said selecting the test pattern is based on a userprofile and a user reputation value relative to the determineddisruptiveness factor value.
 11. The method of claim 1, wherein the webpage is stored in a content management system.
 12. The method of claim1, wherein the web page is designed using a markup language.
 13. Acomputer program product, comprising one or more computer readablehardware storage devices having computer readable program code storedtherein, said program code containing instructions executable by one ormore processors of a computer system to implement a method forautomatically and dynamically controlling publication of a changing webpage, said method comprising: invoking by a delta determination engineto determine, by the one or more processors, a delta vector of a changein position of a user interface control in a web browser window on acomputer display of the computer system, said change in position havingoccurred between a first time before a change to a web page that isalready public was received and a second time after the change to theweb page was applied to the web page to change the web page; invoking aclick speed component to obtain information on transition times betweenuser interface controls including the user interface control within aclick flow; invoking a user interface weight determination engine toassign weights to each user interface control that has been changedbased on the information returned from the click speed component and toautomatically determine, by the one or more processors, a user interfacecontrol weight value for the user interface control having undergone thechange in position, said user interface control weight value indicatingan importance of the user interface control on the web page; calling adisruptiveness factor determination engine to determine, by the one ormore processors, a disruptiveness factor value based on the determineddelta vector and the corresponding user interface control weight value,said disruptiveness factor value being a normalized value expressing anamount of change the user interface control has undergone; calling apublishing flow engine to compare the disruptiveness factor value with adisruptiveness factor threshold; in response to a result of saidcomparing, automatically and dynamically selecting, by the one or moreprocessors from a plurality of test patterns, a test pattern to beapplied to the changed web page depending on the determineddisruptiveness factor value; and testing, by the one or more processors,the changed web page in accordance with the selected test pattern. 14.The computer program product of claim 13, said method furthercomprising: applying, by the one or more processors, the test pattern tothe changed web page depending on the determined disruptiveness factorvalue.
 15. The computer program product of claim 13, said testingcomprising dynamically testing, by the one or more processors, thechanged web page in accordance with the selected test pattern withoutrequiring test sequences to the changed web page, said method furthercomprising: automatically and dynamically publishing the changed webpage, by the one or more processors, in dependence on a result of saidtesting.
 16. The computer program product of claim 13, wherein saiddetermining the delta vector comprises determining a plurality of deltavector component values, one delta vector component value for eachaspect of a plurality of aspects of the user interface control on theweb page.
 17. A computer system, comprising one or more processors, oneor more memories, and one or more computer readable hardware storagedevices, said one or more hardware storage device containing programcode executable by the one or more processors via the one or morememories to implement a method for automatically and dynamicallycontrolling publication of a changing web page, said method comprising:invoking by a delta determination engine to determine, by the one ormore processors, a delta vector of a change in position of a userinterface control in a web browser window on a computer display of thecomputer system, said change in position having occurred between a firsttime before a change to a web page that is already public was receivedand a second time after the change to the web page was applied to theweb page to change the web page; invoking a click speed component toobtain information on transition times between user interface controlsincluding the user interface control within a click flow; invoking auser interface weight determination engine to assign weights to eachuser interface control that has been changed based on the informationreturned from the click speed component and to automatically determine,by the one or more processors, a user interface control weight value forthe user interface control having undergone the change in position, saiduser interface control weight value indicating an importance of the userinterface control on the web page; calling a disruptiveness factordetermination engine to determine, by the one or more processors, adisruptiveness factor value based on the determined delta vector and thecorresponding user interface control weight value, said disruptivenessfactor value being a normalized value expressing an amount of change theuser interface control has undergone; calling a publishing flow engineto compare the disruptiveness factor value with a disruptiveness factorthreshold; in response to a result of said comparing, automatically anddynamically selecting, by the one or more processors from a plurality oftest patterns, a test pattern to be applied to the changed web pagedepending on the determined disruptiveness factor value; and testing, bythe one or more processors, the changed web page in accordance with theselected test pattern.
 18. The computer system of claim 17, said methodfurther comprising: applying, by the one or more processors, the testpattern to the changed web page depending on the determineddisruptiveness factor value.
 19. The computer system of claim 17, saidtesting comprising dynamically testing, by the one or more processors,the changed web page in accordance with the selected test patternwithout requiring test sequences to the changed web page, said methodfurther comprising: automatically and dynamically publishing the changedweb page, by the one or more processors, in dependence on a result ofsaid testing.
 20. The computer system of claim 17, wherein saiddetermining the delta vector comprises determining a plurality of deltavector component values, one delta vector component value for eachaspect of a plurality of aspects of the user interface control on theweb page.